
#ifndef _SW_IOCTL_H_
#define _SW_IOCTL_H_

#ifdef __cplusplus
extern "C" {
#endif

/*init*/
#define SW_API_INIT_OFFSET                10
#define SW_API_SSDK_CFG                   (0  + SW_API_INIT_OFFSET)
#define SW_API_SWITCH_INIT                (1  + SW_API_INIT_OFFSET)
#define SW_API_SWITCH_RESET               (2  + SW_API_INIT_OFFSET)
#define SW_API_SWITCH_MODE_TAG            (3  + SW_API_INIT_OFFSET)


/*port ctrl*/
#define SW_API_PORT_OFFSET                30
#define SW_API_PT_TYPE_GET                (0  + SW_API_PORT_OFFSET)
#define SW_API_PT_LINK_STATUS_GET         (1  + SW_API_PORT_OFFSET)
#define SW_API_PT_ADMIN_MODE_SET          (2  + SW_API_PORT_OFFSET)
#define SW_API_PT_ADMIN_MODE_GET          (3  + SW_API_PORT_OFFSET)
#define SW_API_PT_PHYSICAL_MODE_SET       (4  + SW_API_PORT_OFFSET)
#define SW_API_PT_PHYSICAL_MODE_GET       (5  + SW_API_PORT_OFFSET)
#define SW_API_PT_PHYSICAL_STATUS_GET     (6  + SW_API_PORT_OFFSET)
#define SW_API_PT_FLOWCTRL_MODE_SET       (7  + SW_API_PORT_OFFSET)
#define SW_API_PT_FLOWCTRL_MODE_GET       (8  + SW_API_PORT_OFFSET)
#define SW_API_PT_DOT1D_STATE_SET         (9  + SW_API_PORT_OFFSET)
#define SW_API_PT_DOT1D_STATE_GET         (10 + SW_API_PORT_OFFSET)
#define SW_API_PT_PCS_STATUS_GET		  (11 + SW_API_PORT_OFFSET)
#define SW_API_PT_COMB_PORT_SET			  (12 + SW_API_PORT_OFFSET)
#define SW_API_PT_COMB_PORT_GET			  (13 + SW_API_PORT_OFFSET)
#define SW_API_PT_TEST_SHOW_ALL           (15 + SW_API_PORT_OFFSET)

/*mib*/
#define SW_API_MIB_OFFSET                 50
#define SW_API_PT_MIB_GET                 (0  + SW_API_MIB_OFFSET)
#define SW_API_PT_MIB_CLEAR               (1  + SW_API_MIB_OFFSET)

/*mirror*/
#define SW_API_MIRROR_OFFSET			   60
#define SW_API_MIRROR_DEST_PORT_SET		   (0  + SW_API_MIRROR_OFFSET)
#define SW_API_MIRROR_DEST_PORT_GET		   (1  + SW_API_MIRROR_OFFSET)
#define SW_API_MIRROR_SOURCE_PORT_MODE_SET (2  + SW_API_MIRROR_OFFSET)
#define SW_API_MIRROR_SOURCE_PORT_MODE_GET (3  + SW_API_MIRROR_OFFSET)


/*trunk*/
#define SW_API_TRUNK_OFFSET				  70
#define SW_API_TRUNK_PAG_MODE_SET	  	  (0 + SW_API_TRUNK_OFFSET)
#define SW_API_TRUNK_PAG_MODE_GET	  	  (1 + SW_API_TRUNK_OFFSET)
#define SW_API_TRUNK_LOAD_BALANCE_SET	  (2 + SW_API_TRUNK_OFFSET)
#define SW_API_TRUNK_LOAD_BALANCE_GET	  (3 + SW_API_TRUNK_OFFSET)
#define	SW_API_TRUNK_ID_SET				  (4 + SW_API_TRUNK_OFFSET)
#define SW_API_TRUNK_MEMBERS_SET		  (5 + SW_API_TRUNK_OFFSET)
#define SW_API_TRUNK_ROW_CREATE			  (6 + SW_API_TRUNK_OFFSET)
#define SW_API_TRUNK_ROW_DESTROY		  (7 + SW_API_TRUNK_OFFSET)
#define SW_API_TRUNK_SHOW_STATUS		  (8 + SW_API_TRUNK_OFFSET)

/*rate*/
#define SW_API_RATE_OFFSET				  80
#define SW_API_RATE_BUCKET_EGRL_SET		  (0 + SW_API_RATE_OFFSET)
#define SW_API_RATE_BUCKET_EGRL_GET		  (1 + SW_API_RATE_OFFSET)
#define SW_API_RATE_BUCKET_PIRL_SET		  (2 + SW_API_RATE_OFFSET)
#define SW_API_RATE_BUCKET_PIRL_GET		  (3 + SW_API_RATE_OFFSET)

/*multicast*/
#define SW_API_MULTICAST_OFFSET			  90
#define SW_API_MULTICAST_ENABLE_SET		  (0 + SW_API_MULTICAST_OFFSET)
#define SW_API_MULTICAST_ENABLE_GET		  (1 + SW_API_MULTICAST_OFFSET)
#define SW_API_MULTICAST_ROW_CREATE		  (2 + SW_API_MULTICAST_OFFSET)
#define SW_API_MULTICAST_ROW_DESTROY	  (3 + SW_API_MULTICAST_OFFSET)
#define SW_API_MGMT_FRAME_SET			  (4 + SW_API_MULTICAST_OFFSET)

/*vlan*/
#define SW_API_VLAN_OFFSET				  100
#define	SW_API_VLAN_MODE_SET			  (0 + SW_API_VLAN_OFFSET)
#define SW_API_VLAN_MODE_GET			  (1 + SW_API_VLAN_OFFSET)
#define SW_API_PORT_BASED_VLAN_SET		  (2 + SW_API_VLAN_OFFSET)
#define SW_API_8021Q_VLAN_ROW_CREATE	  (3 + SW_API_VLAN_OFFSET)
#define SW_API_8021Q_VLAN_ROW_DESTROY	  (4 + SW_API_VLAN_OFFSET)
#define SW_API_8021Q_VLAN_SHOW_STATUS	  (5 + SW_API_VLAN_OFFSET)
#define SW_API_8021Q_VLAN_ROW_STATUS	  (6 + SW_API_VLAN_OFFSET)

/*QOS*/
#define	SW_API_QOS_OFFSET				  110
#define SW_API_QOS_PRIO_MAP_SET			  (0 + SW_API_QOS_OFFSET)
#define SW_API_QOS_PRIO_MAP_GET			  (1 + SW_API_QOS_OFFSET)
#define	SW_API_QOS_SCHEDULE_MODE_SET	  (2 + SW_API_QOS_OFFSET)
#define SW_API_QOS_SCHEDULE_MODE_GET	  (3 + SW_API_QOS_OFFSET)
#define	SW_API_QOS_TAG_PRIO_MAP_SET		  (4 + SW_API_QOS_OFFSET)
#define SW_API_QOS_IP_PRIO_MAP_SET		  (5 + SW_API_QOS_OFFSET)
#define SW_API_QOS_ASSIGN_MODE_SET		  (6 + SW_API_QOS_OFFSET)
#define	SW_API_QOS_DEFAULT_PRIO_SET		  (7 + SW_API_QOS_OFFSET)
#define	SW_API_QOS_SHOW_STATUS			  (8 + SW_API_QOS_OFFSET)

/*MAC*/
#define SW_API_MAC_OFFSET				  120
#define SW_API_MAC_AGING_TIMEOUT_SET	  (0 + SW_API_MAC_OFFSET)
#define SW_API_MAC_SECURE_PORT_ENABLE_SET (1 + SW_API_MAC_OFFSET)
#define SW_API_MAC_ROW_CREATE		 	  (2 + SW_API_MAC_OFFSET)
#define SW_API_MAC_ROW_DESTROY			  (3 + SW_API_MAC_OFFSET)
#define SW_API_MAC_ADDR_TABLE_SHOW		  (4 + SW_API_MAC_OFFSET)
#define	SW_API_MAC_ADDR_TABLE_CLEAR		  (5 + SW_API_MAC_OFFSET)
#define SW_API_MAC_SHOW_BLACKLIST		  (6 + SW_API_MAC_OFFSET)
#define	SW_API_MAC_FLUSH_PORT			  (7 + SW_API_MAC_OFFSET)
#define SW_API_8021X_PORT_AUTH_SET		  (8 + SW_API_MAC_OFFSET)
#define SW_API_8021X_MAC_BIND			  (9 + SW_API_MAC_OFFSET)


/*debug*/
#define SW_API_DEBUG_OFFSET               10000
#define SW_API_REG_GET                    (1  + SW_API_DEBUG_OFFSET)
#define SW_API_REG_SET                    (2  + SW_API_DEBUG_OFFSET)
#define SW_API_REG_FIELD_GET              (3  + SW_API_DEBUG_OFFSET)
#define SW_API_REG_FIELD_SET              (4  + SW_API_DEBUG_OFFSET)
#define SW_API_PHY_REG_GET				  (5  + SW_API_DEBUG_OFFSET)
#define SW_API_PHY_REG_SET				  (6  + SW_API_DEBUG_OFFSET)


#define SW_API_MAX 0xffff

#ifdef __cplusplus
}
#endif
#endif

